﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.IO;

namespace _3d_motion_v0._0
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            try
            {
                Application.Run(new motion3d_form());
            }
            catch (Exception e)
            {
                if (
                    MessageBox.Show
                    (
                        e.Message + "\nДетали?",
                        Path.GetFileName(Application.ExecutablePath) + " Error!",
                        MessageBoxButtons.YesNo,
                        MessageBoxIcon.Exclamation,
                        MessageBoxDefaultButton.Button1
                    ) == DialogResult.Yes
                  )
                {
                    // Если запрошены детали,
                    // создается окно с редактором errMsgTextBox, в который выводится 
                    // описание ошибки и детальный маршрут к функции, внутри которой ошибка возникла
                    ErrorMssgForm emf = new ErrorMssgForm();
                    // В errMsgTextBox помещается строка с подробным сообщением об ошибке
                    emf.errMssgText.Text = e.ToString();
                    // Окно изображается в модальном режиме
                    //  (пока окно не закроется, фокус не переводится на другие окна)
                    emf.ShowDialog();
                    // Окно уничтожается в памяти
                    emf.Dispose();

                }
                Application.Exit();
            }
        }
    }
}
